package main

import "fmt"

/**
 * @author: guangcheng
 * @date:   2020/10/30 23:52
 * @version  V1.0
 * @description:
 *
 */
func main() {

	//基本类型的内存布局
	var i int = 10
	//取地址 &i
	fmt.Println("i address = ", &i) //i address =  0xc00000a0a0

	//指针: 整形指针: 把变量i 的地址取出来给一个整形指针, 这个指针变量本身也有一个地址
	var ptr *int = &i
	fmt.Printf("ptr =%v\n", ptr)        //ptr =0xc00000a0a0
	fmt.Println("ptr address = ", &ptr) //ptr address =  0xc000006030

	//取出ptr指向的地址的变量值 i
	//指针执行一个地址, 这个地址有个变量, 获取到这个变量
	// *地址 就是地址对应得值
	fmt.Println(*ptr) //10

	//指针必须接收地址
	//什么样的指针类型接收什么的类型地址

}
